package fachkonzept;
import java.util.concurrent.ExecutionException;

import util.Colour;
import util.EngineType;

/**
 * @author Sebastian
 * @author Piesold
 */
public interface IFachkonzept {

	public Colour getColour( String identificationNumber );
	public EngineType getEngineType( String identificationNumber );
	public int getYearOfConstruction( String identificationNumber );
	public double getOriginPrice( String identificationNumber );
	public double getPrice( String identificationNumber );
	public int getMileage( String identificationNumber );
	public boolean isSelled( String identificationNumber );
	public String getCarType( String identificationNumber );
	public String getManufacturer(String identificationNumber);
	public String getModel ( String identificationNumber );
	/**
	 * searching cars with the desired conditions
	 * @return Array of identification numbers of found cars
	*/
	public String[] searchCar( String identificationNumber, Colour theColour, EngineType theEngineType, int yearOfConstruction, double originPrice, double price, 
			int mileage, boolean isSelled, String carType, String manufacturer, String model );
   /**
    * saving a new car and updating an existing one
    * @param identificationNumber creates if identificationNumber does not exist, updates if exists
    */
	public void saveCar(String identificationNumber, Colour theColour, EngineType theEngineType, int yearOfConstruction, double originPrice, double price, 
			int mileage, boolean isSelled, String carType, String manufacturer, String model ) throws ExecutionException;
	/**
	 * @param
	 */
	public void deleteCar( String identificationNumber ) throws ExecutionException;
	/**
	 * @param
	 */
	public int getCountAllCars( );

}